home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1996 July / C-C++ Users Group Library July 1996.iso / listings / v_12_05 / plauger / bitmask.h < prev    next >
Text File  |  1994-03-08  |  671b  |  27 lines

  1.  
  2. ---------------- Listing 2: The macro _BITMASK ---------------------
  3.  
  4. // bitmask macros
  5. #if _HAS_ENUM_OVERLOADING
  6.  #define _BITMASK(E, T)    \
  7. E& operator&=(E& _X, E _Y) \
  8.     {_X = (E)(_X & _Y); return (_X); } \
  9. E& operator|=(E& _X, E _Y) \
  10.     {_X = (E)(_X | _Y); return (_X); } \
  11. E& operator^=(E& _X, E _Y) \
  12.     {_X = (E)(_X ^ _Y); return (_X); } \
  13. E& operator&(E _X, E _Y) \
  14.     {return ((E)(_X & _Y)); } \
  15. E& operator|(E _X, E _Y) \
  16.     {return ((E)(_X | _Y)); } \
  17. E& operator^(E _X, E _Y) \
  18.     {return ((E)(_X ^ _Y)); } \
  19. E& operator~(E _X) \
  20.     {return ((E)~_X); } \
  21. typedef E T
  22. #else
  23. #define _BITMASK(E, T)    typedef int T
  24. #endif
  25.  
  26.  
  27.